import { http } from '@/utils/request'

/**
 * 创建评论
 * @param {Object} data - 评论数据
 * @param {number} data.travelId - 游记ID
 * @param {number} data.userId - 用户ID
 * @param {number} [data.parentId] - 父评论ID（可选，用于回复功能）
 * @param {string} data.content - 评论内容
 */
export const createComment = (data) => http.post('/api/comments', data)

/**
 * 获取游记评论列表
 * @param {number} travelId - 游记ID
 * @param {Object} params - 查询参数
 * @param {number} [params.page=0] - 页码
 * @param {number} [params.size=10] - 每页数量
 * @param {number} [params.currentUserId] - 当前用户ID（用于获取点赞状态）
 */
export const getTravelComments = (travelId, params) => http.get(`/api/comments/travel/${travelId}`, { params })

/**
 * 获取评论回复列表
 * @param {number} commentId - 评论ID
 * @param {Object} params - 查询参数
 * @param {number} [params.page=0] - 页码
 * @param {number} [params.size=10] - 每页数量
 * @param {number} [params.currentUserId] - 当前用户ID（用于获取点赞状态）
 */
export const getCommentReplies = (commentId, params) => http.get(`/api/comments/${commentId}/replies`, { params })

/**
 * 获取用户评论列表
 * @param {number} userId - 用户ID
 * @param {Object} params - 查询参数
 * @param {number} [params.page=0] - 页码
 * @param {number} [params.size=10] - 每页数量
 * @param {number} [params.currentUserId] - 当前用户ID（用于获取点赞状态）
 */
export const getUserComments = (userId, params) => http.get(`/api/comments/user/${userId}`, { params })

/**
 * 删除评论
 * @param {number} commentId - 评论ID
 */
export const deleteComment = (commentId) => http.delete(`/api/comments/${commentId}`)

/**
 * 点赞评论
 * @param {number} commentId - 评论ID
 */
export const likeComment = (commentId) => http.post(`/api/comments/${commentId}/like`)

/**
 * 取消点赞评论
 * @param {number} commentId - 评论ID
 */
export const unlikeComment = (commentId) => http.delete(`/api/comments/${commentId}/like`)

/**
 * 获取游记评论总数
 * @param {number} travelId - 游记ID
 */
export const getTravelCommentCount = (travelId) => http.get(`/api/comments/travel/${travelId}/count`)

/**
 * 获取评论回复总数
 * @param {number} commentId - 评论ID
 */
export const getCommentReplyCount = (commentId) => http.get(`/api/comments/${commentId}/replies/count`)
